ModBus Protokolü
Modbus protokolü, bugün endüstriyel kontrol alanında yaygın olarak kullanılan genel bir iletişim protokolüdür. Bu protokol sayesinde denetleyiciler birbirleriyle veya Ethernet gibi ağlar aracılığıyla diğer cihazlarla iletişim kurabilirler. Modbus protokolü ana cihazdan iletişim teknolojisi kullanır, yani ana cihaz tarafından aktif olarak sorgulanır ve cihazdan çalıştırılır. Genellikle ana aygıt tarafı tarafından kullanılan protokol Modbus Master olarak adlandırılır ve aygıt tarafından kullanılan protokol Modbus Slave olarak adlandırılır. Tipik ana ekipmanlar, endüstriyel kontrol makineleri ve endüstriyel denetleyiciler gibi; PLC gibi programlanabilir denetleyici gibi cihazlardan tipik. Modbus fiziksel iletişim arayüzü, seri bağlantı noktaları (RS232 ve RS485 dahil) veya Ethernet bağlantı noktaları seçebilir. İletişim aşağıdaki süreci takip eder:
• Ana cihaz cihazdan istek gönderir
Aygıttan ana cihazın isteklerini analiz etmek ve işlemek ve sonuçları ana cihaza göndermek
● Herhangi bir hata oluşursa, cihazdan bir istisna kod döndürülür
ModBus Protokolü Yazılımı Ürün Tanıtımı
ModBus iletişim protokolü yazılımı ürünleri çoğunlukla ARM9 gömülü ana kartı ortamında kullanılmaktadır. ModBus iletişim protokolü yazılımı ile birlikte, ModBus iletişim spesifikasyonlarına uygun ana (Master) ve cihaz (Slave) uygulama platformlarını kolayca oluşturabilirsiniz. ModBus iletişimin ana yöntemi için, ModBus iletişim protokolü paketi iki ayrı bölüme ayrılır: ModBus ana protokolü yazılımı (kısaca modbus_Master) ve ModBus cihaz tarafı protokolü yazılımı (kısaca modbus_Slave). Şu anda WinCE ortamında çalışan ModBus iletişim protokolü yazılımları, müşterilere C fonksiyonu ile statik LIB kütüphanesi olarak sunulmaktadır. Ana özellikleri şunlardır:
• Gerçek zamanlı endüstriyel uygulamalar için çok uygundur
Seri bağlantı noktası tabanlı ModBus veya TCP ModBus uygulamalarını destekleyebilir
RTU iletim modu
● Bobin, diskret anahtar girişleri ve kayıt bayt işlemleri dahil olmak üzere Modbus fonksiyon kodu işlemlerinin çoğunu destekler
• Yayın Adresi Desteği
ModBus iletişimi için esnek zaman geçirimi
● İletişimdeki aktarma protokolünün hata kodları hakkında ayrıntılı bilgiler elde edilebilir
ModBus Protokolü Yazılım İletişim Grafiği

ModBus Protokolü Yazılımı Destekli Özellik Kodları
Fonksiyon Kodu |
Açıklama |
1 |
Tek bir bobin okumak |
2 |
Ayrı miktar girişini oku |
3 |
Birden fazla kayıt okumak |
4 |
Giriş kaydı okumak |
5 |
Tek bir bobin yazın |
6 |
Tek bir kayıt yazın |
15 |
Birden fazla bobin yazın |
16 |
Birden fazla kayıt yazın |
22 |
Yazma kaydı engeller |
23 |
Kayıt okuma/yazma |
Yazılımın Temel Kullanımı
Uygulamanın kullanımını kolaylaştırmak ve farklı iletişim ortamları için tutarlı kod biçimlerini korumak için, Intel tarafından sunulan ModBus protokolü yazılımındaki API fonksiyonları (modbus_Master ve modbus_Slave dahil) aynı zamanda seri bağlantı noktası ve TCP tabanlı Modbus protokolünü destekleyebilir. Uygulamanın sadece başlatıcı fonksiyonunu çağırdığında farklı parametrelerle ayırt etmesi gerekir.
Modbus_Master Uygulaması
Modbus istemci modu olarak uygulanmak, öncelikle istekleri hazırlamak ve sunucu cihazlarına istek göndermek ve sunucunun yanıtını beklemektir. Bu tür uygulama geliştirme yaparken, kullanıcılar Modbus standart edebiyatına ve iddia edilen cihazın iletişim arayüzü veri kılavuzuna başvurabilir ve sunucu cihazlarına erişim ve kontrolü tamamlamak için doğrudan İnternet tarafından sağlanan modbus_Master paketini kullanabilirler. Bu tür uygulamalar geliştirirken, kullanıcının sadece modbus_master.h/modbus_master.lib içermesi gerekir.
Modbus_Slave Kullanımı
ModBus sunucu modu olarak uygulama, esasen ModBus uygulama mesajlarının analizi ve yanıtı gerçekleştirmek zorundadır, ancak bu ModBus iletişiminin sadece bir parçasıdır, diğer bir parçası da uygulama verilerine erişim gerekir, bu bölümün içeriği kullanıcının kendisi tarafından tanımlanması gerekir. Müşterilerin kullanımını kolaylaştırmak için, bu kullanıcı arayüzü fonksiyonlarının otomatik yüklenmesi modbus_Slave paketinde, kullanıcı uygulaması veri işleme ve ModBus uygulama mesaj yanıtlarını bağlayan fonksiyon işaretçisi şeklinde gerçekleştirilir. Kullanıcıların bu arayüz fonksiyonlarını sadece ihtiyaçlarına göre tanımlamaları gerekir ve her fonksiyonun özel tanımı, özel bir CPP dosyası olan DataProvider.cpp ile gerçekleştirilir.
Bu tür uygulamaların geliştirilmesi için iki bölümden oluşan içeriği gerektiği görülebilir, bir bölümü modbus_slave.h/modbus_slave.lib tarafından tanımlanan API fonksiyonu; Diğer bir bölüm, DataProvider.h / DataProvider.cpp tarafından tanımlanan kullanıcı veri arayüzü fonksiyonudur ve arayüz fonksiyonu kullanıcının özel olarak DataProvider.cpp'de uygulanmasını gerektirir.
ModBus uygulama mesajlarına zamanında yanıt vermek için, programlama sırasında engellenme modunda modbus_Slave işlevini tekrar tekrar çağıran bir iplik tasarlanmalıdır.
Örneğin aşağıdaki gibi:
Modbus Cihaz Tarafı Protokolünü Başlatma
hPort = mbusSlave_StartupServer(_T('*'), 1, 10000, mbusSlave_Interface );
Ya da...
hPort=mbusSlave_StartupServer(_T)'COM3: 9600-8-1-0'),1,10000, mbusSlave_Interface );
(2) İsteğe yanıt vermek için Serverloop işlevini bir konumda çağırmak
iken( 1 )
{
//ModBus mesajlarını analiz etmek ve yanıtlamak için çalıştırma fonksiyonunu çağırır.
sonuç = mbusSlave_ServerLoop( hPort );
eğer(sonuç!=0)//Hata döndüğünü kontrol et
{
//Hata İşlemi: Bu örnek hata kodunu almak ve yazdırmak için metin bilgisidir.
wcscpy( szText, mbusSlave_GetErrorText( sonuç ) );
i1 = wcslen( szText );
eğer( i1>0 )
{
wcstombs( strText, szText, i1 );
printf('hata kodu: %s! n'deStretex);
}
}
}
ModBus protokolü yazılımları, C fonksiyonu ile statik kütüphaneler (modbus.lib veya libmodbus.a dosyaları) olarak müşterilere sunulmaktadır. Daha fazla müşteri kullandıkça, ModBus protokolünü, özellikle de ana protokol yazılımını (kısaca modbus_Master) dinamik bir kütüphane (modbus_Master.dll veya libmbusmaster.so dosyası) olarak, müşteri uygulamalarının çağrılmasını kolaylaştırmak için, Ingron gömülü endüstriyel kontrol anakartı çekirdek sistemine önceden yükledi. Önceden yüklenmiş Modbus protokolü ile kontrol edilen ana kartlar, ESM serisinin tüm ana kartlarını (ESM6802, ESM6800, ESM335x, ESM928x vb.) içerir.
İlgili Referanslar
| 4 ~ 20mA Akım Halka Alma Uygulaması | WinCE altında Modbus ana iletişim protokolü yazılımı | |
| WinCE altında Modbus Cihaz Tarafı Protokolü Yazılımı | Genuine Embedded Linux Endüstriyel Kontrol Anakartı Modbus Ana Kontrol Protokolü Yazılımı Desteği | |
| Linux için Modbus Cihaz Tarafı Protokolü Yazılımı Tanıtımı | ESM6802 Qt MODBUS programlama desteği | |
| Modbus Protokolü İngiltere Anakartına Önceden Kurulur |
